/**
 * 获取当前时间字符串
 * @returns 格式化的时间字符串
 */
const getTime = (): string => {
  return new Date().toLocaleTimeString()
}
/**
 * 日志工具对象，提供不同级别的日志输出，包含不同的颜色样式
 */
export const logger = {
  /**
   * 输出普通日志
   * @param message 日志信息
   * @param args 额外参数
   */
  log(message: any, ...args: any[]): void {
    console.log(
      `[${getTime()}] INFO: ${message}`,
      ...args,
    )
  },
  /**
   * 输出信息日志
   * @param message 日志信息
   * @param args 额外参数
   */
  info(message: any, ...args: any[]): void {
    console.log(
      `%c[${getTime()}] INFO: ${message}`,
      'color: #2196F3; font-weight: bold;',
      ...args,
    )
  },
  /**
   * 输出警告日志
   * @param message 日志信息
   * @param args 额外参数
   */
  warn(message: any, ...args: any[]): void {
    console.log(
      `%c[${getTime()}] WARN: ${message}`,
      'color: #FFA500; font-weight: bold;',
      ...args,
    )
  },
  /**
   * 输出错误日志
   * @param message 日志信息
   * @param args 额外参数
   */
  error(message: any, ...args: any[]): void {
    console.log(
      `%c[${getTime()}] ERROR: ${message}`,
      'color: #FF0000; font-weight: bold;',
      ...args,
    )
  },
  /**
   * 输出成功日志
   * @param message 日志信息
   * @param args 额外参数
   */
  success(message: any, ...args: any[]): void {
    console.log(
      `%c[${getTime()}] SUCCESS: ${message}`,
      'color: #4CAF50; font-weight: bold;',
      ...args,
    )
  }
}